#pragma once

/*
	A region cell represents a tile on the region map, and is a zoomed out area.
*/

#include "../../Math/Vec2i.h"
#include <memory>

namespace World
{
	class Area;
	typedef std::shared_ptr<Area> AreaPtr;

	class RegionCellData
	{
	public:
		bool visited;
		bool canFastTravel;

		AreaPtr area;
	};
	typedef std::unique_ptr<RegionCellData> RegionCellDataUPtr;

	class RegionCell
	{
	public:
		RegionCell();
		~RegionCell();

		const AreaPtr &getArea() const { return data->area; }

	private:
		RegionCellDataUPtr data;
	};
}
